
Page({
  data: {
    region: ['省份', '城市', '区县'], // 初始值
    city: '', // 当前城市ID
    hasWeatherData: false, // 是否有天气数据
    today: {} // 今天的天气数据
  },

  // 根据城市名称获取城市ID
  getCityId(cityName, callback) {
    wx.request({
      url: 'https://geoapi.qweather.com/v2/city/lookup',
      data: {
        key: '1ce31a4373da40a49307d26f22379514',
        location: cityName // 城市名称
      },
      success: function(res) {
        console.log('城市ID获取成功：', res);
        if (res.data.code !== '200') {
          wx.showToast({
            title: '抱歉！无法获取城市ID',
            icon: 'none',
            duration: 2000
          });
          return;
        }
        // 获取第一个返回的城市ID
        const cityId = res.data.location[0].id;
        if (callback) {
          callback(cityId);
        }
      },
      fail: function(err) {
        console.error('城市ID获取失败，错误信息：', err);
        wx.showToast({
          title: '无法获取城市ID，请稍后再试',
          icon: 'none',
          duration: 2000
        });
      }
    });
  },

  // 获取当天的天气数据
  getWeather(cityId) {
    let that = this;
    console.log('开始获取天气数据，城市ID：', cityId);
    wx.request({
      url: 'https://devapi.qweather.com/v7/weather/3d?location=&key=',
      data: {
        location: cityId, // 城市ID
        key: '1ce31a4373da40a49307d26f22379514'
      },
      success: function(res) {
        console.log('天气数据获取成功：', res);
        if (res.data.code !== '200') {
          wx.showToast({
            title: '抱歉！没有该城市的天气预报',
            icon: 'none',
            duration: 2000
          });
          return;
        }
        // 获取当天的天气数据（第一个元素）
        const today = res.data.daily[0];
        that.setData({
          today: today,
          hasWeatherData: true // 设置为 true 以显示天气数据
        });
        console.log('已设置当天的天气数据：', that.data);
      },
      fail: function(err) {
        console.error('天气数据获取失败，错误信息：', err);
        wx.showToast({
          title: '无法获取天气数据，请稍后再试',
          icon: 'none',
          duration: 2000
        });
      }
    });
  },

  // 选择地区后的回调
  getUserProvince(e) {
    const region = e.detail.value; // 用户选择的省市区
    this.setData({
      region: region // 更新数据
    });
    
    const cityName = region[1]; // 从选择的地区中获取城市名称
    console.log('选择的城市为：', cityName);
    
    // 获取城市ID并获取天气数据
    this.getCityId(cityName, (cityId) => {
      this.setData({
        city: cityId // 设置当前城市ID
      });
      this.getWeather(cityId); // 获取该城市的天气信息
    });
  }
});
